package com.sinux.generality.provider.pay.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 微信退款记录主表
 * </p>
 *
 * @author sinux
 * @since 2023-05-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="GptPayOrderRefund对象", description="微信退款记录主表")
public class GptPayOrderRefund implements Serializable {

    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "商户退款单号(商户系统内部的退款单号，商户系统内部唯一，只能是数字、大小写字母_-|*@，同一退款单号多次请求只退一笔。)")
    private Long payRefundId;

    @ApiModelProperty(value = "支付订单号")
    private Long payOrderId;

    @ApiModelProperty(value = "支付成功使用的预支付订单号")
    private String advanceId;

    @ApiModelProperty(value = "微信退款单号")
    private String refundId;

    @ApiModelProperty(value = "退款原因")
    private String reason;

    @ApiModelProperty(value = "退款状态：1-退款中，2-退款成功，3-退款异常，4-退款关闭")
    private Integer refundStatus;

    @ApiModelProperty(value = "取当前退款单的退款入账方")
    private String userReceivedAccount;

    @ApiModelProperty(value = "用户支付总金额")
    private BigDecimal payerTotal;

    @ApiModelProperty(value = "退款给用户的金额")
    private BigDecimal payerRefund;

    @ApiModelProperty(value = "退款途径：1-微信退款")
    private Integer refundType;

    @ApiModelProperty(value = "退款完成时间")
    private LocalDateTime successTime;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "修改时间")
    private LocalDateTime modifyTime;


}
